<template>
<el-container>
  <!-- 导航栏 -->
  <el-header>
    <!-- 导航 -->
    <el-menu
      class="el-menu-demo"
      mode="horizontal"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      :default-active="$route.path"
      :router='true'
    >
      <!-- 后台管理 -->
      <el-menu-item index="/home">
        电商后台管理 
      </el-menu-item>      
      <!-- 处理中心 -->       
      <el-menu-item
        :index="item.modulepath"          
        v-for="item in headerNav" 
        :key="item.key"
        v-if="item.moduletype==1"
      >        
        {{item.modulename}}        
      </el-menu-item>

      <!-- 用户管理 -->
      <el-submenu index="2" style="float:right">
        <span slot="title">
          {{this.$store.state.adminData.username}}-{{this.$store.state.roleData.rolename}}
        </span>
        <el-menu-item index="/adimn/info">会员中心</el-menu-item>
        <el-menu-item index="/loginout">退出</el-menu-item>
      </el-submenu> 
      <!-- 登录 -->
      <el-menu-item style="float:right">
        <router-link to="/login">登录</router-link>
      </el-menu-item>
    </el-menu>
  </el-header>
  <!-- body区域 -->
  <el-container>
  <!-- 侧边栏区域 -->
    <el-aside width="180px">
      <el-menu
        class="el-menu-vertical-demo"
        background-color="#545c64"
        text-color="#fff"
        active-text-color="#ffd04b"
        :default-active="$route.path"
        :router='true'
      >
        <el-submenu index="1">
          <template slot="title">
            <i class="el-icon-location"></i>
            <span>商城管理</span>
          </template>         
          <!-- 商城管理 -->
          <el-menu-item 
            v-for="item in headerNav"
            :key="item.key"
            :index="item.modulepath"
            v-if="item.moduletype==2"
          >          
            <i class="el-icon-menu"></i>
            {{item.modulename}}          
          </el-menu-item> 
        </el-submenu>
        <!-- 用户管理 -->
        <el-submenu index="2">
          <template slot="title">
            <i class="el-icon-location"></i>
            <span>用户管理</span>
          </template>         
          <!-- 用户管理 -->
          <el-menu-item 
            v-for="item in headerNav"
            :key="item.key"
            :index="item.modulepath"
            v-if="item.moduletype==3"
          >          
            <i class="el-icon-menu"></i>
            {{item.modulename}}          
          </el-menu-item> 
        </el-submenu>
      </el-menu>
    </el-aside>
    <el-container>
      <!-- 主体区域 -->
      <el-main>
        <!-- 标签页选项卡 -->
        <el-tabs 
          v-model="tabData.editableTabsValue" 
          type="card" closable 
          @tab-remove="removeTab"
          @tab-click='tabClick'
        >
          <el-tab-pane
            v-for="item in tabData.editableTabs"
            :key="item.name"
            :label="item.title"
            :name="item.name"
          >
            <!-- {{item.content}} -->
          </el-tab-pane>
        </el-tabs>
        <!-- 组件容器 -->
        <keep-alive exclude="" include="">
          <router-view name="main"></router-view>
        </keep-alive>
      </el-main>
      <!-- 页脚区域 -->
      <el-footer>Footer</el-footer>
    </el-container>
  </el-container>
</el-container>
</template>
<script>
export default {
  name:'Index',
  data(){
    return {
      navselected:'',
      // 标签页数据
      tabData:{},
      // 顶部导航条数据
      headerNav:[],
      // 侧边栏数据
      asideNav:[]
    }
  },
  created(){
    // 获取顶部导航栏数据
    this.headerNav=this.$store.state.moduleData
    // 获取标签页数据
    this.tabData=this.$store.state.tabData
    this.$msg.success(this)
  },
  mounted(){
    this.$router.push('/home')
  },
  watch:{
    // 实现header导航栏与标签页响应
    $route(to,from){ 
      let activTitle=''
      if(typeof(to.path)!=undefined){
        if(to.path=='/home'){
          this.navselected='/home'
          activTitle='home'
        }else{
          this.headerNav.some(item=>{
            if(to.path==item.modulepath){
              this.navselected=item.modulepath
              activTitle=item.modulename
              return true
            }
          })        
        }
        this.tabData.editableTabs.some(item=>{
          if(item.title==activTitle){            
            this.$store.commit('changeActiveName',item.name)
            return true
          }
        })
      }
    }    
  },
  methods:{
  //侧边栏选项卡方法

  // main区域标签页方法
    // 删除标签页
    removeTab(targetName) {
      this.$store.commit('removeTab',targetName)
      let length=this.tabData.editableTabs.length
      let activeTitle=this.tabData.editableTabs[length-1].title
      if(activeTitle=='home'){
        this.$router.push('/home')
      }
      this.headerNav.some(item=>{
        if(item.modulename==activeTitle){
          this.$router.push(item.modulepath)
          return true
        }
      })
    },
    // 切换标签页
    tabClick(tab){
      if(tab.label=='home'){
        this.$router.push('/home')
      }
      this.headerNav.some(item=>{
        if(item.modulename==tab.label){
          this.$router.push(item.modulepath)
          return true
        }
      })
    }
  }
}
</script>
<style scoped>
  .el-header{
    padding: 0;
  }
  .el-container{
    height: 100%;
  }
  .el-aside{
    height: 100%;
    background-color: rgb(84, 92, 100);
  }
  .el-submenu .el-menu-item{
    min-width: 160px;
  }
  .el-menu--horizontal>.el-menu-item{
    width: 160px;
    text-align: center;
    font-size: 18px;
  }  
  .el-main{
    width: 100%;
    height: 100%;
    padding: 0;
  }
  .active{
    color: #ffd04b!important;
  }
  .el-menu-item{
    font-size: 18px;
  }
  span{
    font-size: 18px;
  }
</style>
